Form Timeouts

When you open a form in a web browser, depending on how long it takes you to complete the form, or if the form is left inactive for a prolonged period, you may encounter a form 'timeout'. Two different types of timeouts can occur - both of which are server-related.

A timeout is the length of time after which the connection between the form and the server will expire, resulting in the form no longer being able to send data to the server and vice versa. Unless the connection is re-established by starting a new form session, you won't be able to complete the form, and any data already entered on it could potentially be lost.

One of the timeouts is related to IIS, where, as a web server running Digitise Forms, IIS allows an 'Idle' timeout period to be specified in order to minimise unnecessary open connections. This is configured within IIS itself. See the Setting an Idle timeout period in IIS and What happens when you reach the end of an IIS session drop-downs at the end of this topic for more information.

  • An additional refresh/recycle period can also be configured within IIS, which is also discussed in the IIS drop-downs at the bottom of this topic. The refresh/recycle period is the point at which IIS will close and then re-open without having an impact on any opened forms.

The second timeout is imposed by the Digitise Form Server and is related to the length of a form session - the period during which the form can communicate with Form Server. This second timeout can be set within the form's configuration database, or within Form Manager, or Form Studio. See the Setting a Form Server session timeout in Form Studio and Options available when you reach the end of a Form Server session drop-downs at the end of this topic for more information. Also see the Configuration Settings topic's Security drop-down for information on how to set a session timeout within Form Manager.

  • A 'session' is the term used to describe a specified period of communication between two or more devices or 'ends', e.g., computers, automated systems, or live active users. The session starts at a certain point in time, and finishes some time later. If the timeout for a session is reached and the session expires, the connection between the devices or ends will terminate and a new connection will need to be opened so that a new session can be started. For an opened form, where a session ends due to a Form Server timeout, a new session will need to be created in order for the form to be completed. For an IIS-related Idle period timeout, a new session will start automatically when the user returns to the form and tries to enter or select data following a period of inactivity. See the drop-downs, below, for more information.

Applying a server timeout to your form can help to:

  • Maintain efficiency. When a connection between the form and the server is left open for extended periods, this can result in an unnecessary drain on the server's resources. Each open connection takes up memory and other system resources, and if too many connections remain open, this can lead to resource exhaustion, affecting the server's performance.
  • Maintain server security. A long-term open connection between the server and the form presents a potential security risk as it could be used to maliciously send large amounts of data to the server, or to launch various attacks. Some of the more common types of attack associated with open connections are described in the following table:
  •  

    Type of Attack Description
    Brute Force Attack If the connection remains open, attackers can repeatedly attempt to guess credentials or exploit vulnerabilities.
    Credential Stuffing Attackers can use known credentials (from data breaches) to gain unauthorised access.
    Session Hijacking An open connection may allow attackers to hijack an existing session and gain unauthorised access to sensitive data.
    Denial-of-Service (DoS) Attack Attackers can flood the server with open connections, overwhelming its capacity.

     

  • Prevent locks on database records, which could impact on the ability of other users to access the same data.
  • Reduce the number of long-running transactions. Leaving a connection open for a long period can lead to long-running transactions which could span multiple database accesses, making it harder to manage consistency and concurrency.
  • Alleviate port exposure. Open connections often use specific ports, and leaving these open without proper security measures can expose the server to external threats.

While keeping connections open for longer periods can improve performance in certain scenarios - for example, where the form is especially long and you need more time to complete it without having to repeatedly re-start your session - it is essential to balance efficiency with security. Proper connection management, coupled with session timeouts, are crucial for preventing many of the above risks.